const fs = require('fs');
const path = require('path');
const utils = require('../utils');
const filePath = path.join(__dirname, '../json/machine.json');
// 设备初始化的数据
const machineData = {
  id: 1,
  name: 'name1',
  status: '未启动',
};
// 设备状态 - 未启动 | 启动中 | 运行中 | 停止中

// 初始化设备数据
const init = (callback) => {
  fs.writeFile(filePath, JSON.stringify(machineData), (err) => {
    if (callback) {
      callback(err);
    }
  })
};

// 获取设备数据
const getMachine = (callback) => {
  fs.readFile(filePath, (err, data) => {
    if (!err) {
      if (callback) {
        callback(JSON.parse(data));
      }
    }
  })
};

// 设置设备状态
const setStatus = (status, callback) => {
  getMachine(data => {
    data.status = status;
    fs.writeFile(filePath, JSON.stringify(data), (err) => {
      if (callback) {
        callback(err, data);
      }
    })
  });
};

// 启动设备
const startMachine = (callback) => {
  try {
    const timer = 5 + Math.floor(Math.random() * 5);
    setTimeout(() => {
      setStatus('运行中', () => {
        utils.doListen('运行中');
      });
    }, timer * 1000);
    if (callback) {
      callback();
    }
  } catch (error) {
    
  }
};

// 停止设备
const stopMachine = (callback) => {
  try {
    const timer = 5 + Math.floor(Math.random() * 5);
    setTimeout(() => {
      setStatus('未启动', () => {
        utils.doListen('未启动');
      });
    }, timer * 1000);
    if (callback) {
      callback();
    }
  } catch (error) {
    
  }
};
module.exports = {
  init,
  getMachine,
  setStatus,
  startMachine,
  stopMachine,
}